typedef int ElemType;

struct LinkedNode{
    ElemType node_value;
    struct LinkedNode *next_node;
};
typedef struct LinkedNode LnkNode;

struct LinkedQueue{
    LnkNode *front;
    LnkNode *rear;
};
typedef struct LinkedQueue LnkQueue;

int InitQueue(LnkQueue *queue);
int DestroyQueue(LnkQueue *queue);
int ClearQueue(LnkQueue *queue);
int QueueEmpty(LnkQueue queue);
int GetHead(LnkQueue queue,ElemType *element);
int EnQueue(LnkQueue *queue,ElemType element);
int DeQueue(LnkQueue *queue,ElemType *elemType);
int QueueLength(LnkQueue queue);